
function formatTime(time) {
	if (typeof time !== 'number' || time < 0) {
		return time
	}

	var hour = parseInt(time / 3600)
	time = time % 3600
	var minute = parseInt(time / 60)
	time = time % 60
	var second = time

	return ([hour, minute, second]).map(function(n) {
		n = n.toString()
		return n[1] ? n : '0' + n
	}).join(':')
}

function formatLocation(longitude, latitude) {
	if (typeof longitude === 'string' && typeof latitude === 'string') {
		longitude = parseFloat(longitude)
		latitude = parseFloat(latitude)
	}

	longitude = longitude.toFixed(2)
	latitude = latitude.toFixed(2)

	return {
		longitude: longitude.toString().split('.'),
		latitude: latitude.toString().split('.')
	}
}
var dateUtils = {
	UNITS: {
		'年': 31557600000,
		'月': 2629800000,
		'天': 86400000,
		'小时': 3600000,
		'分钟': 60000,
		'秒': 1000
	},
	humanize: function(milliseconds) {
		var humanize = '';
		for (var key in this.UNITS) {
			if (milliseconds >= this.UNITS[key]) {
				humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前';
				break;
			}
		}
		return humanize || '刚刚';
	},
	format: function(dateStr) {
		var date = this.parse(dateStr)
		var diff = Date.now() - date.getTime();
		if (diff < this.UNITS['天']) {
			return this.humanize(diff);
		}
		var _format = function(number) {
			return (number < 10 ? ('0' + number) : number);
		};
		return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDate()) + '-' +
			_format(date.getHours()) + ':' + _format(date.getMinutes());
	},
	parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串，转化为一个Date对象
		var a = str.split(/[^0-9]/);
		return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
	}
};

/**
 * 获取某线索字段baisc值的id
 */
function formFieldBasicId(fieldList, tag, code) {
	let id = 0;
	let tagCont = fieldList.find(e => e.tag === tag);
	if(tagCont && tagCont.basic && tagCont.basic.list){
		let levelInfo = tagCont.basic.list.find(e => e.code === code);
		id = levelInfo ? levelInfo['id'] : 0;
	}
	return id;
}
/**
 * 获取某线索字段baisc值的名称
 */
function formFieldBasicName(fieldList, tag, id) {
	let name = "";
	let tagCont = fieldList.find(e => e.tag === tag);
	if(tagCont && tagCont.basic && tagCont.basic.list){
		let levelInfo = tagCont.basic.list.find(e => e.id === id);
		name = levelInfo ? levelInfo['name'] : '';
	}else {
		name = id;
	}
	return name;
}

/**
 * 获取某线索字段baisc值的标识
 */
function formFieldBasicCode(fieldList, tag, id) {
	let code = "";
	let tagCont = fieldList.find(e => e.tag === tag);
	if(tagCont && tagCont.basic && tagCont.basic.list){
		let levelInfo = tagCont.basic.list.find(e => e.id === id);
		code = levelInfo ? levelInfo['code'] : '';
	}
	return code;
}
/**
 * 获取某线索字段名称
 */
function formFieldName(fieldList, tag){
	let name = "";
	let tagCont = fieldList.find(e => e.tag === tag);
	return tagCont && tagCont['name'] ? tagCont['name'] : tag;	
}
/**
 * 获取根据省市区字段获取对应的值
 */
function getNameById(region, id){
	let regions = [];
	region.forEach(function(res,key) {
		regions.push({value:res.value,title:res.text});
		if(res.children){
			res.children.forEach(function(res1,key1) {
				regions.push({value:res1.value,title:res1.text});
				if(res1.children){
					res1.children.forEach(function(res2,key2) {
						regions.push({value:res2.value,title:res2.text});
					});
				}
			});
		}
	});
	let info = regions.find((e) => e.value == id);
	return info ? info.title : '';
}
/**
 * 本月起止日期
 */
function getMonthDate(){
	let y = new Date().getFullYear();
	let m = new Date().getMonth() + 1;
	let d = new Date(y,m,0).getDate();
	m = m < 10 ? "0" + m : m;
	d = d < 10 ? "0" + d : d;
	let start_date = y+"-"+m+"-"+"01";
	let end_date = y+"-"+m+"-"+d;
	return [start_date, end_date];
}
/**
 * 登录校验
 */
function loginCheck(){
	let pages  = getCurrentPages(); // 直接获取当前页面路由
	let userinfo = uni.getStorageSync("userinfo");
	if(!userinfo && pages[0]['route']!="/pages/user/login") {
		uni.redirectTo({
			url: "/pages/user/login"
		});
	}
}


export {
	formatTime,
	formatLocation,
	dateUtils,
	formFieldBasicName,
	formFieldBasicCode,
	formFieldBasicId,
	formFieldName,
	getMonthDate,
	loginCheck,
	getNameById
}
